home *** CD-ROM | disk | FTP | other *** search
- #ifndef NET_IF_DL_H
- #define NET_IF_DL_H \
- "$Id: if_dl.h,v 1.1.1.1 2001/11/26 22:21:14 tboeckel Exp $"
- /*
- * The Link-Level Socket Interface
- *
- * Copyright © 1995 AmiTCP/IP Group,
- * Network Solutions Development, Inc.
- * All rights reserved.
- */
-
- /*
- * A Link-Level Sockaddr may specify the interface in one of two
- * ways: either by means of a system-provided index number (computed
- * anew and possibly differently on every reboot), or by a human-readable
- * string such as "il0" (for managerial convenience).
- *
- * Census taking actions, such as something akin to SIOCGCONF would return
- * both the index and the human name.
- *
- * High volume transactions (such as giving a link-level ``from'' address
- * in a recvfrom or recvmsg call) may be likely only to provide the indexed
- * form, (which requires fewer copy operations and less space).
- *
- * The form and interpretation of the link-level address is purely a matter
- * of convention between the device driver and its consumers; however, it is
- * expected that all drivers for an interface of a given if_type will agree.
- */
-
- /*
- * Structure of a Link-Level sockaddr:
- */
- struct sockaddr_dl {
- u_char sdl_len; /* Total length of sockaddr */
- u_char sdl_family; /* AF_DLI */
- u_short sdl_index; /* if != 0, system given index for interface */
- u_char sdl_type; /* interface type */
- u_char sdl_nlen; /* interface name length, no trailing 0 reqd. */
- u_char sdl_alen; /* link level address length */
- u_char sdl_slen; /* link layer selector length */
- char sdl_data[IFNAMSIZ + 12];
- /* minimum work area, can be larger;
- contains both if name and ll address */
- };
-
- #define LLADDR(s) ((caddr_t)((s)->sdl_data + (s)->sdl_nlen))
-
- #ifndef KERNEL
-
- #include <sys/cdefs.h>
-
- __BEGIN_DECLS
- void link_addr __P((const char *, struct sockaddr_dl *));
- char *link_ntoa __P((const struct sockaddr_dl *));
- __END_DECLS
-
- #endif /* !KERNEL */
-
- #endif /* NET_IF_DL_H */
-